﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Gnosis.Alexandria.Model
{
    public interface IRepository
    {
        void Initialize();
        T Get<T>(long id) where T : IIdentifiable;
        ICollection<T> Get<T>(ICommandBuilder query) where T : IIdentifiable;
        ICollection<T> GetAll<T>() where T : IIdentifiable;
        void Persist<T>(T record) where T : IIdentifiable;
        void Persist(IBatch batch);
    }
}
